package vista;


import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import modelo.ModeloIngredientes;
import modelo.ModeloReporteIngredientesUsados;
import modelo.ModeloReporteVentas;

//import modelo.Accion;

@SuppressWarnings("serial")
public class VistaModeloTabla extends AbstractTableModel {

	private String titulos[];		
	private Vector<ModeloIngredientes> vIng = new Vector<ModeloIngredientes>();
	Vector<ModeloReporteVentas> vRpt1= new Vector<ModeloReporteVentas>();
	Vector<ModeloReporteIngredientesUsados> vUsa= new Vector<ModeloReporteIngredientesUsados>();
	
	int tipo;
	String aux;
	Double aux2;
	
	public VistaModeloTabla(Vector<ModeloIngredientes> vIng, int tipo) {
		
		super();		
		this.vIng=vIng;
		this.fireTableDataChanged();
		this.tipo=tipo;
		
		if (this.tipo == 1){
			
			this.titulos = new String [4];
			titulos[0]= new String("Codigo");
			titulos[1]= new String("Descripcion");
			titulos[2]= new String("Costo");
			titulos[3]= new String("Stock");
		}
	}

	public VistaModeloTabla(Vector<ModeloReporteVentas> vRpt1, int tipo, String aux) {
		
		super();		
		this.vRpt1=vRpt1;
		this.fireTableDataChanged();
		this.tipo=tipo;
		this.aux= aux;
		
		if (this.tipo == 0){
			
			//public ModeloReporteVentas(String orden, String producto, int cantidad, double total) {			
			this.titulos = new String [4];
			titulos[0]= new String("Orden");
			titulos[1]= new String("Producto");
			titulos[2]= new String("Cantidad");
			titulos[3]= new String("Total");
		}	

	}
	
	public VistaModeloTabla(Vector<ModeloReporteIngredientesUsados> vUsa, int tipo, double aux2) {
		
		super();		
		this.vUsa=vUsa;
		this.fireTableDataChanged();
		this.tipo=tipo;
		this.aux2= aux2;
		
		if (this.tipo == 2){
			
			//public ModeloReporteVentas(String orden, String producto, int cantidad, double total) {			
			this.titulos = new String [3];
			titulos[0]= new String("Ingrediente");
			titulos[1]= new String("Producto");
			titulos[2]= new String("Cantidad");
			
		}	

	}


	@Override
	public int getColumnCount() {		
		return titulos.length;
	}

	
	public int getRowCount() {		
		//return acciones.size();
		int can=0;
		
		if (tipo == 0){
			can= vRpt1.size();
		}
		
		if (tipo == 1){
			can= vIng.size(); 
		}
		
		if (tipo == 2){
			can= vUsa.size(); 
		}
		
		return can;
		
	}
	
	
	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		
		if (this.tipo==0){
			
			ModeloReporteVentas modelo = vRpt1.get(rowIndex);
			switch (columnIndex) {						
				case 0:	return modelo.getOrden();					
				case 1: return modelo.getProducto();
				case 2: return Integer.toString(modelo.getCantidad());					
				case 3: return Double.toString(modelo.getTotal());								
			}
			
		}
		
		if (this.tipo==1){
			
			ModeloIngredientes modelo = vIng.get(rowIndex);
				switch (columnIndex) {			
				
					case 0:	return modelo.getId();					
					case 1: return modelo.getDescripcion();
					case 2: return Double.toString(modelo.getCosto());
					case 3: return Integer.toString(modelo.getStock());					
													
				}
		}
		
		if (this.tipo==2){
			
			ModeloReporteIngredientesUsados modelo = vUsa.get(rowIndex);
				switch (columnIndex) {			
				
					case 0:	return modelo.getIngrediente();					
					case 1: return modelo.getProducto();					
					case 2: return Integer.toString(modelo.getCantidad());					
													
				}
		}

		
		return null;
	}

	
	public String getColumnName(int column) {
		return titulos[column];
	}

	
}
